package neuronalenetzeelearning.model;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.5FDC23FE-9B99-D51B-6356-0D4ACD692C96]
// </editor-fold> 
public interface ILearningRule {
//TODO getChangeWeight umbenennen!
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.451D6C27-6F2D-A2B8-4A60-F0E1F3EC3888]
    // </editor-fold>

    /**
     * liest die veränderten Gewichte der Kanten aus
     * @deprecated Name implicits a returned expression, use {@link #nextStep()}
     */
    //rausnehmen
    @Deprecated
    public void getChangeWeight(Graph graph);

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.8A1ACC47-5997-4968-C27C-A39F5FF30C33]
    // </editor-fold>
    /**
     * liest die vom Benutzer gewählte Lernrate aus
     * @return Wert der Lernrate
     */
    public double getLearningRate();

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.EC248297-C66C-1FBB-5E96-3B8064CB1C21]
    // </editor-fold>
    /**
     * Lernrate, die der Benutzer setzen kann
     */
    public void setLearningRate(double learningRate);

    public void nextStep();

       public void nextStep(int anzahlDerWiederholungen);

}


